# 第二章
# 2.3.1
# 对于字符串，可执行的最简单的操作之一是修改其中的单词的大小写
name = 'zhang san'
print(name.title())

name = 'Zhang San'
print(name.upper())
print(name.lower())

# 字符串拼接
firstName = 'shi'
lastName = 'maoqing'
fullName = firstName + ' ' + lastName
message = 'Hello ' + fullName.title() + '!'
print(message)
print(f'Hello, {fullName.title()}!')  # 利用变量关联来创建完整的信息

# 2.3.2
# 利用花括号类似于C中的宏，会直接将花括号{}里的变量替换成该标签上内所存放的内容
first_name = 'shi'
last_name = 'mao qing'
full_name = f'{first_name} {last_name}'
print(full_name)

# 2.3.4
# 删除空白
# 空白：泛指任何非打印字符
# 比如：空格，制表符，换行符
# 利用strip删除字符串前后的空白
# 以下的两行代码不同说明有些方法(Method)并不会将数据本身进行改变
# 数据在经过.strip方法后，会产生一个输出，这个输出如果不用一个变量进行保存
# 则可能不会对该数据进行改变
# lstrip删除字符串前面的空白
# rstrip删除字符串后面的空白
programmingLanguage = '   python '
print(programmingLanguage.strip())
print(programmingLanguage)  # 要保存删除操作，必须有一个新的变量存储经过strip方法后的字符串变量

# 2.3.5
# 有一些方法是带有参数的，比如removeprefix()
url = 'https://zhuanlan.zhihu.com/p/577522491'
print(url.removeprefix('https://'))

# 2.3后的 “动手试一试”
# 练习2.3
EnglishName = "Eric"
message = f'Hello {EnglishName}, would you like to learn some Python today?'
print(message)
# 练习2.5
EnglishName = 'Albert Einstein'
print(f'{EnglishName} once said something')
# 练习2.6
famous_person1 = 'Albert Einstein'
message = f'{famous_person1} once said something'
print(message)
# 练习2.7
famous_person2 = '\t\nMao Zedong\t\t\t\t'
print(famous_person2.strip())
# 练习2.8
fileName = 'python_notes.txt'
print(fileName.removesuffix('.txt'))


# 2.4
print(3 ** 2)  # **代表乘方运算，a ** b代表a的b次方
print(0.2 + 0.1)  # 两个浮点数相加的结果可能会多出很多位小数

age = 24
message = 'Happy ' + str(age) + 'th Birthday!'  # 强制类型转换后才能字符串拼接
print(message)


# 2.4.4
universe_age = 14_000_000_000  # 长串数字之间的数字之间加下划线，不影响最后变量得到的值
print(universe_age)

# 2.4.6
# 为了规范起见，将一个变量的名字中的所有字母都写成大写
# 则可把这种变量视作常量
# 比如：MAXSIZE = 1000


# 2.6 Python之禅
import this
# The Zen of Python, by Tim Peters
